package com.zklh.leetcode.other.problem1;

/**
 * @ClassName RomanToInt
 * @Description
 * @Author 坐看落花
 * @Date 2019/7/11 20:33
 * @Version 1.0
 **/
public class RomanToInt {

    public int romanToInt(String s){
        int result = 0;
        for(int i = 0; i < s.length()-1; i++){
            switch (s.charAt(i)){
                case 'M':{
                    result += 1000;
                    break;
                }
                case 'D':{
                    result += 500;
                    break;
                }
                case 'C':{
                    if(s.charAt(i+1) == 'D' || s.charAt(i+1) == 'M'){
                        result -= 100;
                    }else{
                        result += 100;
                    }
                    break;
                }
                case 'L':{
                    result += 50;
                    break;
                }
                case 'X':{
                    if(s.charAt(i+1) == 'L' || s.charAt(i+1) == 'C'){
                        result -= 10;
                    }else{
                        result += 10;
                    }
                    break;
                }
                case 'V':{
                    result += 5;
                    break;
                }
                case 'I':{
                    if(s.charAt(i+1) == 'V' || s.charAt(i+1) == 'X'){
                        result -= 1;
                    }else{
                        result += 1;
                    }
                    break;
                }
            }
        }
        switch (s.charAt(s.length() - 1)){
            case 'M':{
                result += 1000;
                break;
            }
            case 'D':{
                result += 500;
                break;
            }
            case 'C':{
                result += 100;
                break;
            }
            case 'L':{
                result += 50;
                break;
            }
            case 'X':{
                result += 10;
                break;
            }
            case 'V':{
                result += 5;
                break;
            }
            case 'I':{
                result += 1;
                break;
            }
        }
        return result;
    }

    public static void main(String[] args){
        RomanToInt romanToInt = new RomanToInt();
        System.out.println(romanToInt.romanToInt("IV"));
    }
}
